#include <iostream>
#include <string.h>
#include "ShareMemory.hpp"
#include "Time.hpp"
#include "Fifo.hpp"


int main()
{
    shm.GetShm();
    shm.AttachShm();
    gpipe.OpenPipeForwrite();
    // sleep(10);
    // std::cout << "Client attach done" << std::endl;

    // 在这里进行IPC
    // char *strinfo = (char*)shm.GetAddr();
    // printf("Client虚拟地址：%p\n", strinfo);

    // char ch = 'A';
    // while(ch <= 'Z')
    // {
    //     sleep(3);
    //     strinfo[ch - 'A'] = ch;// 这里操作shm的时候，怎么没有用系统调用？
    //     ch++;
    // }

    // 把共享内存当做一个结构体
    struct data *image = (struct data *)shm.GetAddr(); 
    char ch = 'A';
    while (ch <= 'Z')
    {
        strcpy(image->status, "最新");// 在缓冲区里面拷贝内容
        strcpy(image->lasttime, GetCurrTime().c_str());
        strcpy(image->image, "zxxxxxxxxxxxxxxxxxx");

        gpipe.Signal();
        
        sleep(3);
    }

    shm.DetachShm();
    // std::cout << "Client detach done" << std::endl;;
    // sleep(10);

    return 0;
}

// int main()
// {
//     key_t k = ::ftok(gpath.c_str(), gprojID);
//     std::cout << "k : " << ToHex(k) << std::endl;
//     return 0;
// }